//package com.luyi.sensor.util;
//
//import org.apache.ibatis.type.BaseTypeHandler;
//import org.apache.ibatis.type.JdbcType;
//import ru.yandex.clickhouse.ClickHouseArray;
//import java.sql.CallableStatement;
//import java.sql.PreparedStatement;
//import java.sql.ResultSet;
//import java.sql.SQLException;
//
///**
// * Java Int 数组与 ClockHouse Array Int 转换器
// * @version 1.0
// * @since 2019/11/14 9:59
// */
//public class ClickArrayToIntHandler extends BaseTypeHandler<Integer[]> {
//
//
//  /**
//   * 将参数设为null
//   * @param preparedStatement
//   * @param i
//   * @param integers //Int数组
//   * @param jdbcType //连接类型
//   * @throws SQLException
//   */
//  @Override
//  public void setNonNullParameter(PreparedStatement preparedStatement, int i, Integer[] integers, JdbcType jdbcType) throws SQLException {
//    preparedStatement.setObject(i, integers);
//  }
//
//  /**
//   *
//   * @param resultSet 返回结果集
//   * @param s
//   * @return
//   * @throws SQLException
//   */
//  @Override
//  public Integer[] getNullableResult(ResultSet resultSet, String s) throws SQLException {
//    Object obj = resultSet.getObject(s); //获取此ResultSet对象当前行中指定列的值作为 Java 编程语言中的Object 。
//    return parseClickHouseArrayToInt(obj);
//  }
//
//  @Override
//  public Integer[] getNullableResult(ResultSet resultSet, int i) throws SQLException {
//    Object obj = resultSet.getObject(i);
//    return parseClickHouseArrayToInt(obj);
//  }
//
//  @Override
//  public Integer[] getNullableResult(CallableStatement callableStatement, int i) throws SQLException {
//    Object obj = callableStatement.getObject(i);
//    return parseClickHouseArrayToInt(obj);
//  }
//
//  /**
//   * clickhouse的Array变为Integer数组类型
//   * @param obj 传入的clickhouse--Array
//   * @return
//   */
//  private Integer[] parseClickHouseArrayToInt(Object obj) {
//    if (obj instanceof ClickHouseArray) {
//      int[] res = new int[0];
//      try {
//        res = (int[]) ((ClickHouseArray) obj).getArray();
//      } catch (SQLException ex) {
//        ex.printStackTrace();
//      }
//
//      if (res != null && res.length > 0) {
//        Integer[] resI = new Integer[res.length];
//        for (int i = 0; i < res.length; i++) {
//          resI[i] = res[i];
//        }
//
//        return resI;
//      }
//    }
//    return new Integer[0];
//  }
//}
